package com.zxkj.solr.model;

import org.apache.solr.client.solrj.beans.Field;
import org.springframework.data.annotation.Id;
import org.springframework.data.solr.core.mapping.SolrDocument;

import java.util.Date;
import java.util.List;

/**
 * Created by Administrator on 2017/7/18.
 * 导入Solr的模块类
 */
//@SolrDocument(solrCoreName = "ga")
@SolrDocument
public class SciDocSolrModel {

    private @Id
    @Field("ID") String id;
    private @Field("TITLE") String title;//标题
    private @Field("ABSTRACT") String docAbstract;//摘要
    private @Field("BOOKSERIES") String bookSeries;//书籍系列
    private @Field("PUBYEAR") int publicationYear;//出版年
    private @Field("PUBDATE") Date publicationDate;//出版日期
    private @Field("PUBLICATION") String publicationName;//出版物
    private @Field("PUBLISHER") String publisher;//出版社
    private @Field("VOLUME") String volume;//卷
    private @Field("ISSUE") String issue;//期
    private @Field("PAGE") String page;//页
    private @Field("SUPPLEMENT") String supplement;//增刊
    private @Field("CONFERENCE") String conferenceName;//会议名称
    private @Field("CONLOCATION") String conferenceLocation;//会议地点
    private @Field("CONDATE") String conferenceDate;//会议时间
    private @Field("ISSN") List<String> issn;//ISSN
    private @Field("PISSN") String pissn;//PISSN
    private @Field("EISSN") String eissn;//EISSN
    private @Field("ISBN") String isbn;//EISSN
    private @Field("GROUPAUTHOR") List<String> groupAuhtor;//团体作者
    private @Field("INCLUDE") List<String> include;//所在数据库
//    private @Field("CORPORATION") List<String> corpition;//机构，转大写
//    private @Field("CORPFIRST") List<String> corptionFirst;//机构（第一）
//    private @Field("CORPREPRINT") List<String> corpReprint;//机构（通讯）
//    private @Field("CORPDOUBLE") List<String> corpDouble;//机构（第一或通讯）
//    private @Field("CORPORATION_CN") List<String> corpitionCn;//机构(中文)
    private @Field("DOCUMENTTYPE") List<String> documentType;//文献类型
    private @Field("AUKEYWORD") List<String> authorKeyword;//作者关键词
    private @Field("KEYWORDPLUS") List<String> keywordplus;//关键词+
    private @Field("EMAIL") List<String> email;//EMAIL
    private @Field("UT") String ut;//UT转大写
    private @Field("CITED") int cited;//被引用次数
    private @Field("CITING") int citing;//引用数
    private @Field("CITEDDATE") Date citedDate;//被引更新日期
    private @Field("IMPACTFACTOR") float impactFactor;//影响因子
    private @Field("IFYEAR") int ifYear;//影响因子年份
    private @Field("CATEGORY") List<String> category;//分区(PS)
    private @Field("LANGUAGE") List<String> language;//语言
    private @Field("RESEARCHAREA") List<String> researchArea;//研究领域
    private @Field("SPONSOR") List<String> sponsor;//资助
    private @Field("FUNDINGAGENCY") List<String> fundingAgency;//基金名称
    private @Field("GRANDNUMBER") List<String> grandNumber;//
    private @Field("AUID") List<String> auid;//ORCID和researcherID
    private @Field("AU2KEYWORD") List<String> author2keyword;//作者+关键词
    private @Field("AU2AU") List<String> author2author;//作者+作者
    private @Field("KEYWORD2KEYWORD") List<String> keyword2keyword;//关键词+关键词
    private @Field("CORP2CORP") List<String> corp2corp;//机构+机构
    private @Field("DOI") String doi;//DOI
    private @Field("PMID") String pmid;//PMID
    private @Field("AUTHOR") List<String> author;//作者，转大写
    private @Field("AUFIRST") List<String> authorFirst;//作者（第一）
    private @Field("AUREPRINT") List<String> authorReprint;//作者（通讯）
    private @Field("AUDOUBLE") List<String> authorDouble;//作者（第一或通讯）

    private @Field("AD") List<String> address;//地址
    private @Field("ESCISUBJECT") List<String> subjectEsci;//publication_subjectarea
    private @Field("SCIJOURAREA") List<String> journalAreaSci;//publication_subjectarea
    private @Field("ACSJOURAREA") List<String> journalAreaAcs;//publication_subjectarea
//    private @Field("COUNTRY") List<String> country;//国家
//    private @Field("PROVINCE") List<String> province;//省
//    private @Field("CITY") List<String> city;//城市
//    private @Field("AU2AU") List<String> author2author;//作者
//    private @Field("CORP2CORP") List<String> corporation2corporation;//单位
//    private @Field("CORP2KEYWORD") List<String> corporation2keyword;//单位、// 关键字

    /*下面为新增字段*/
    private @Field("CORP") List<String> corp;//单位
    private @Field("CORP_HOSP") List<String> corpHosp;//单位(名字中含有医院)
    private @Field("CORP_HOSP_BELONG") List<String> corpHospBelong;//单位和(如果是医院)上级单位
    private @Field("CORP_FIRST") List<String> corpFirst;//单位(第一地址中的单位)
    private @Field("CORP_REP") List<String> corpRep;//单位(通讯地址中的单位))
    private @Field("CORP_DOUBLE") List<String> corpDouble;//单位(第一地址、通讯地址中的单位)
    private @Field("CORP_CITY") List<String> corpCity;//地址所在的城市
    private @Field("CORP_PROVINCE") List<String> corpProvince;//地址所在的省
    private @Field("CORP_COUNTRY") List<String> corpCountry;//地址所在的国家

    private @Field("CORP_CHINA") List<String> corpChina;//中国机构
    private @Field("CORP_CHINA_FIRST") List<String> corpChinaFirst;//中国第一机构
    private @Field("CORP_CHINA_REP") List<String> corpChinaRep;//中国通讯机构
    private @Field("CORP_FOREIGN") List<String> corpForeign;//境外机构

    private @Field("HighlyCited") String highlyCited;//高被引
    private @Field("HotCited") String hotCited;//热点文献

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }


    public void setTitle(String title) {
        this.title = title;
    }

    public String getDocAbstract() {
        return docAbstract;
    }

    public void setDocAbstract(String docAbstract) {
        this.docAbstract = docAbstract;
    }

    public String getBookSeries() {
        return bookSeries;
    }

    public void setBookSeries(String bookSeries) {
        this.bookSeries = bookSeries;
    }

    public int getPublicationYear() {
        return publicationYear;
    }

    public void setPublicationYear(int publicationYear) {
        this.publicationYear = publicationYear;
    }

    public Date getPublicationDate() {
        return publicationDate;
    }

    public void setPublicationDate(Date publicationDate) {
        this.publicationDate = publicationDate;
    }

    public String getPublicationName() {
        return publicationName;
    }

    public void setPublicationName(String publicationName) {
        this.publicationName = publicationName;
    }

    public String getPublisher() {
        return publisher;
    }

    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }

    public String getVolume() {
        return volume;
    }

    public void setVolume(String volume) {
        this.volume = volume;
    }

    public String getIssue() {
        return issue;
    }

    public void setIssue(String issue) {
        this.issue = issue;
    }

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

    public String getSupplement() {
        return supplement;
    }

    public void setSupplement(String supplement) {
        this.supplement = supplement;
    }

    public String getConferenceName() {
        return conferenceName;
    }

    public void setConferenceName(String conferenceName) {
        this.conferenceName = conferenceName;
    }

    public String getConferenceLocation() {
        return conferenceLocation;
    }

    public void setConferenceLocation(String conferenceLocation) {
        this.conferenceLocation = conferenceLocation;
    }

    public String getConferenceDate() {
        return conferenceDate;
    }

    public void setConferenceDate(String conferenceDate) {
        this.conferenceDate = conferenceDate;
    }

    public List<String> getIssn() {
        return issn;
    }

    public void setIssn(List<String> issn) {
        this.issn = issn;
    }

    public String getPissn() {
        return pissn;
    }

    public void setPissn(String pissn) {
        this.pissn = pissn;
    }

    public String getEissn() {
        return eissn;
    }

    public void setEissn(String eissn) {
        this.eissn = eissn;
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public List<String> getGroupAuhtor() {
        return groupAuhtor;
    }

    public void setGroupAuhtor(List<String> groupAuhtor) {
        this.groupAuhtor = groupAuhtor;
    }

    public List<String> getInclude() {
        return include;
    }

    public void setInclude(List<String> include) {
        this.include = include;
    }

    public List<String> getDocumentType() {
        return documentType;
    }

    public void setDocumentType(List<String> documentType) {
        this.documentType = documentType;
    }

    public List<String> getAuthorKeyword() {
        return authorKeyword;
    }

    public void setAuthorKeyword(List<String> authorKeyword) {
        this.authorKeyword = authorKeyword;
    }

    public List<String> getKeywordplus() {
        return keywordplus;
    }

    public void setKeywordplus(List<String> keywordplus) {
        this.keywordplus = keywordplus;
    }

    public List<String> getEmail() {
        return email;
    }

    public void setEmail(List<String> email) {
        this.email = email;
    }

    public String getUt() {
        return ut;
    }

    public void setUt(String ut) {
        this.ut = ut;
    }

    public int getCited() {
        return cited;
    }

    public void setCited(int cited) {
        this.cited = cited;
    }

    public int getCiting() {
        return citing;
    }

    public void setCiting(int citing) {
        this.citing = citing;
    }

    public Date getCitedDate() {
        return citedDate;
    }

    public void setCitedDate(Date citedDate) {
        this.citedDate = citedDate;
    }

    public float getImpactFactor() {
        return impactFactor;
    }

    public void setImpactFactor(float impactFactor) {
        this.impactFactor = impactFactor;
    }

    public int getIfYear() {
        return ifYear;
    }

    public void setIfYear(int ifYear) {
        this.ifYear = ifYear;
    }

    public List<String> getCategory() {
        return category;
    }

    public void setCategory(List<String> category) {
        this.category = category;
    }

    public List<String> getLanguage() {
        return language;
    }

    public void setLanguage(List<String> language) {
        this.language = language;
    }

    public List<String> getResearchArea() {
        return researchArea;
    }

    public void setResearchArea(List<String> researchArea) {
        this.researchArea = researchArea;
    }

    public List<String> getSponsor() {
        return sponsor;
    }

    public void setSponsor(List<String> sponsor) {
        this.sponsor = sponsor;
    }

    public List<String> getFundingAgency() {
        return fundingAgency;
    }

    public void setFundingAgency(List<String> fundingAgency) {
        this.fundingAgency = fundingAgency;
    }

    public List<String> getGrandNumber() {
        return grandNumber;
    }

    public void setGrandNumber(List<String> grandNumber) {
        this.grandNumber = grandNumber;
    }

    public List<String> getAuid() {
        return auid;
    }

    public void setAuid(List<String> auid) {
        this.auid = auid;
    }

    public List<String> getAuthor2keyword() {
        return author2keyword;
    }

    public void setAuthor2keyword(List<String> author2keyword) {
        this.author2keyword = author2keyword;
    }

    public String getDoi() {
        return doi;
    }

    public void setDoi(String doi) {
        this.doi = doi;
    }

    public String getPmid() {
        return pmid;
    }

    public void setPmid(String pmid) {
        this.pmid = pmid;
    }

    public List<String> getAuthor() {
        return author;
    }

    public void setAuthor(List<String> author) {
        this.author = author;
    }

    public List<String> getAuthorFirst() {
        return authorFirst;
    }

    public void setAuthorFirst(List<String> authorFirst) {
        this.authorFirst = authorFirst;
    }

    public List<String> getAuthorReprint() {
        return authorReprint;
    }

    public void setAuthorReprint(List<String> authorReprint) {
        this.authorReprint = authorReprint;
    }

    public List<String> getAuthorDouble() {
        return authorDouble;
    }

    public void setAuthorDouble(List<String> authorDouble) {
        this.authorDouble = authorDouble;
    }

    public List<String> getAddress() {
        return address;
    }

    public void setAddress(List<String> address) {
        this.address = address;
    }

    public List<String> getSubjectEsci() {
        return subjectEsci;
    }

    public void setSubjectEsci(List<String> subjectEsci) {
        this.subjectEsci = subjectEsci;
    }

    public List<String> getJournalAreaSci() {
        return journalAreaSci;
    }

    public void setJournalAreaSci(List<String> journalAreaSci) {
        this.journalAreaSci = journalAreaSci;
    }

    public List<String> getJournalAreaAcs() {
        return journalAreaAcs;
    }

    public void setJournalAreaAcs(List<String> journalAreaAcs) {
        this.journalAreaAcs = journalAreaAcs;
    }

    public List<String> getCorp() {
        return corp;
    }

    public void setCorp(List<String> corp) {
        this.corp = corp;
    }

    public List<String> getCorpHosp() {
        return corpHosp;
    }

    public void setCorpHosp(List<String> corpHosp) {
        this.corpHosp = corpHosp;
    }

    public List<String> getCorpFirst() {
        return corpFirst;
    }

    public void setCorpFirst(List<String> corpFirst) {
        this.corpFirst = corpFirst;
    }

    public List<String> getCorpRep() {
        return corpRep;
    }

    public void setCorpRep(List<String> corpRep) {
        this.corpRep = corpRep;
    }

    public List<String> getCorpDouble() {
        return corpDouble;
    }

    public void setCorpDouble(List<String> corpDouble) {
        this.corpDouble = corpDouble;
    }

    public List<String> getCorpCity() {
        return corpCity;
    }

    public void setCorpCity(List<String> corpCity) {
        this.corpCity = corpCity;
    }

    public List<String> getCorpHospBelong() {
        return corpHospBelong;
    }

    public void setCorpHospBelong(List<String> corpHospBelong) {
        this.corpHospBelong = corpHospBelong;
    }

    public List<String> getCorpCountry() {
        return corpCountry;
    }

    public void setCorpCountry(List<String> corpCountry) {
        this.corpCountry = corpCountry;
    }

    public List<String> getCorpProvince() {
        return corpProvince;
    }

    public void setCorpProvince(List<String> corpProvince) {
        this.corpProvince = corpProvince;
    }

    public List<String> getCorpChina() {
        return corpChina;
    }

    public void setCorpChina(List<String> corpChina) {
        this.corpChina = corpChina;
    }

    public List<String> getCorpChinaFirst() {
        return corpChinaFirst;
    }

    public void setCorpChinaFirst(List<String> corpChinaFirst) {
        this.corpChinaFirst = corpChinaFirst;
    }

    public List<String> getCorpChinaRep() {
        return corpChinaRep;
    }

    public void setCorpChinaRep(List<String> corpChinaRep) {
        this.corpChinaRep = corpChinaRep;
    }

    public List<String> getCorpForeign() {
        return corpForeign;
    }

    public void setCorpForeign(List<String> corpForeign) {
        this.corpForeign = corpForeign;
    }

    public String getHighlyCited() {
        return highlyCited;
    }

    public void setHighlyCited(String highlyCited) {
        this.highlyCited = highlyCited;
    }

    public String getHotCited() {
        return hotCited;
    }

    public void setHotCited(String hotCited) {
        this.hotCited = hotCited;
    }

    public List<String> getAuthor2author() {
        return author2author;
    }

    public void setAuthor2author(List<String> author2author) {
        this.author2author = author2author;
    }

    public List<String> getKeyword2keyword() {
        return keyword2keyword;
    }

    public void setKeyword2keyword(List<String> keyword2keyword) {
        this.keyword2keyword = keyword2keyword;
    }

    public List<String> getCorp2corp() {
        return corp2corp;
    }

    public void setCorp2corp(List<String> corp2corp) {
        this.corp2corp = corp2corp;
    }
}
